



<!doctype html>
<html lang="en" class="no-js">
  <head>
    
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width,initial-scale=1">
      <meta http-equiv="x-ua-compatible" content="ie=edge">
      
        <meta name="description" content="Here you can find all documents about QTrobot.">
      
      
        <link rel="canonical" href="https://luxai-qtrobot.github.io/FAQ/Miscellaneous/">
      
      
        <meta name="author" content="QTrobot">
      
      
        <meta name="lang:clipboard.copy" content="Copy to clipboard">
      
        <meta name="lang:clipboard.copied" content="Copied to clipboard">
      
        <meta name="lang:search.language" content="en">
      
        <meta name="lang:search.pipeline.stopwords" content="True">
      
        <meta name="lang:search.pipeline.trimmer" content="True">
      
        <meta name="lang:search.result.none" content="No matching documents">
      
        <meta name="lang:search.result.one" content="1 matching document">
      
        <meta name="lang:search.result.other" content="# matching documents">
      
        <meta name="lang:search.tokenizer" content="[\s\-]+">
      
      <link rel="shortcut icon" href="../../img/luxai-favicon.ico">
      <meta name="generator" content="mkdocs-1.1, mkdocs-material-4.6.3">
    
    
      
        <title>Miscellaneous - QTrobot Documentation</title>
      
    
    
      <link rel="stylesheet" href="../../assets/stylesheets/application.adb8469c.css">
      
        <link rel="stylesheet" href="../../assets/stylesheets/application-palette.a8b3c06d.css">
      
      
        
        
        <meta name="theme-color" content="#3f51b5">
      
    
    
      <script src="../../assets/javascripts/modernizr.86422ebf.js"></script>
    
    
      
        <link href="https://fonts.gstatic.com" rel="preconnect" crossorigin>
        <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700%7CRoboto+Mono&display=fallback">
        <style>body,input{font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"Roboto Mono","Courier New",Courier,monospace}</style>
      
    
    <link rel="stylesheet" href="../../assets/fonts/material-icons.css">
    
    
      <link rel="stylesheet" href="../../stylesheets/extra.css">
    
    
      
    
    
  </head>
  
    
    
    <body dir="ltr" data-md-color-primary="indigo" data-md-color-accent="indigo">
  
    <svg class="md-svg">
      <defs>
        
        
      </defs>
    </svg>
    <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
    <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
    <label class="md-overlay" data-md-component="overlay" for="__drawer"></label>
    
      <a href="#miscellaneous-faq" tabindex="0" class="md-skip">
        Skip to content
      </a>
    
    
      <header class="md-header" data-md-component="header">
  <nav class="md-header-nav md-grid">
    <div class="md-flex">
      <div class="md-flex__cell md-flex__cell--shrink">
        <a href="https://luxai-qtrobot.github.io/" title="QTrobot Documentation" aria-label="QTrobot Documentation" class="md-header-nav__button md-logo">
          
            <img alt="logo" src="../../img/logo_luxai_white.png" width="24" height="24">
          
        </a>
      </div>
      <div class="md-flex__cell md-flex__cell--shrink">
        <label class="md-icon md-icon--menu md-header-nav__button" for="__drawer"></label>
      </div>
      <div class="md-flex__cell md-flex__cell--stretch">
        <div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
          
            <span class="md-header-nav__topic">
              QTrobot Documentation
            </span>
            <span class="md-header-nav__topic">
              
                Miscellaneous
              
            </span>
          
        </div>
      </div>
      <div class="md-flex__cell md-flex__cell--shrink">
        
          <label class="md-icon md-icon--search md-header-nav__button" for="__search"></label>
          
<div class="md-search" data-md-component="search" role="dialog">
  <label class="md-search__overlay" for="__search"></label>
  <div class="md-search__inner" role="search">
    <form class="md-search__form" name="search">
      <input type="text" class="md-search__input" aria-label="search" name="query" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="query" data-md-state="active">
      <label class="md-icon md-search__icon" for="__search"></label>
      <button type="reset" class="md-icon md-search__icon" data-md-component="reset" tabindex="-1">
        &#xE5CD;
      </button>
    </form>
    <div class="md-search__output">
      <div class="md-search__scrollwrap" data-md-scrollfix>
        <div class="md-search-result" data-md-component="result">
          <div class="md-search-result__meta">
            Type to start searching
          </div>
          <ol class="md-search-result__list"></ol>
        </div>
      </div>
    </div>
  </div>
</div>
        
      </div>
      
    </div>
  </nav>
</header>
    
    <div class="md-container">
      
        
      
      
      <main class="md-main" role="main">
        <div class="md-main__inner md-grid" data-md-component="container">
          
            
              <div class="md-sidebar md-sidebar--primary" data-md-component="navigation">
                <div class="md-sidebar__scrollwrap">
                  <div class="md-sidebar__inner">
                    <nav class="md-nav md-nav--primary" data-md-level="0">
  <label class="md-nav__title md-nav__title--site" for="__drawer">
    <a href="https://luxai-qtrobot.github.io/" title="QTrobot Documentation" class="md-nav__button md-logo">
      
        <img alt="logo" src="../../img/logo_luxai_white.png" width="48" height="48">
      
    </a>
    QTrobot Documentation
  </label>
  
  <ul class="md-nav__list" data-md-scrollfix>
    
      
      
      


  <li class="md-nav__item">
    <a href="../.." title="Home" class="md-nav__link">
      Home
    </a>
  </li>

    
      
      
      


  <li class="md-nav__item">
    <a href="../../user-manual/" title="Quick Start" class="md-nav__link">
      Quick Start
    </a>
  </li>

    
      
      
      


  <li class="md-nav__item">
    <a href="../../api/" title="API Reference" class="md-nav__link">
      API Reference
    </a>
  </li>

    
      
      
      

  


  <li class="md-nav__item md-nav__item--active md-nav__item--nested">
    
      <input class="md-toggle md-nav__toggle" data-md-toggle="nav-4" type="checkbox" id="nav-4" checked>
    
    <label class="md-nav__link" for="nav-4">
      FAQ
    </label>
    <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
      <label class="md-nav__title" for="nav-4">
        FAQ
      </label>
      <ul class="md-nav__list" data-md-scrollfix>
        
        
          
          
          


  <li class="md-nav__item">
    <a href="../Audio/" title="Audio" class="md-nav__link">
      Audio
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../Autostart/" title="Autostart" class="md-nav__link">
      Autostart
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../Motors/" title="Motors" class="md-nav__link">
      Motors
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../Network/" title="Network" class="md-nav__link">
      Network
    </a>
  </li>

        
          
          
          

  


  <li class="md-nav__item md-nav__item--active">
    
    <input class="md-toggle md-nav__toggle" data-md-toggle="toc" type="checkbox" id="__toc">
    
      
    
    
      <label class="md-nav__link md-nav__link--active" for="__toc">
        Miscellaneous
      </label>
    
    <a href="./" title="Miscellaneous" class="md-nav__link md-nav__link--active">
      Miscellaneous
    </a>
    
      
<nav class="md-nav md-nav--secondary">
  
  
    
  
  
    <label class="md-nav__title" for="__toc">Table of contents</label>
    <ul class="md-nav__list" data-md-scrollfix>
      
        <li class="md-nav__item">
  <a href="#1-can-i-do-a-backup-of-qtrobot" class="md-nav__link">
    1. Can I do a backup of QTrobot?
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#2-can-i-use-c-to-program-qtrobot" class="md-nav__link">
    2. Can I use C# to program QTrobot?
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#3-how-to-connect-bluetooth-mousekeyboard-to-qtrobot" class="md-nav__link">
    3. How to connect Bluetooth mouse/keyboard to QTrobot?
  </a>
  
    <nav class="md-nav">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#step-1-ssh-to-qtpc" class="md-nav__link">
    Step 1: ssh to QTPC
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#step-2-launch-bluetoothctl" class="md-nav__link">
    Step 2: launch bluetoothctl
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#step-3-turn-bluetooth-power-on-and-register-the-agent" class="md-nav__link">
    Step 3: turn bluetooth power on and register the agent
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#step-4-scan-and-pair-the-bluetooth-device" class="md-nav__link">
    Step 4: scan and pair the bluetooth device
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#step-5-trust-and-connect-to-the-device" class="md-nav__link">
    Step 5: trust and connect to the device:
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
        <li class="md-nav__item">
  <a href="#4-is-qtrobot-sdk-open-source" class="md-nav__link">
    4. Is QTrobot SDK open source?
  </a>
  
</li>
      
      
      
      
      
    </ul>
  
</nav>
    
  </li>

        
      </ul>
    </nav>
  </li>

    
      
      
      


  <li class="md-nav__item">
    <a href="../../demos/" title="Demos" class="md-nav__link">
      Demos
    </a>
  </li>

    
      
      
      


  <li class="md-nav__item">
    <a href="../../examples/" title="Examples" class="md-nav__link">
      Examples
    </a>
  </li>

    
      
      
      


  <li class="md-nav__item">
    <a href="../../author-note/" title="Author's Note" class="md-nav__link">
      Author's Note
    </a>
  </li>

    
  </ul>
</nav>
                  </div>
                </div>
              </div>
            
            
              <div class="md-sidebar md-sidebar--secondary" data-md-component="toc">
                <div class="md-sidebar__scrollwrap">
                  <div class="md-sidebar__inner">
                    
<nav class="md-nav md-nav--secondary">
  
  
    
  
  
    <label class="md-nav__title" for="__toc">Table of contents</label>
    <ul class="md-nav__list" data-md-scrollfix>
      
        <li class="md-nav__item">
  <a href="#1-can-i-do-a-backup-of-qtrobot" class="md-nav__link">
    1. Can I do a backup of QTrobot?
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#2-can-i-use-c-to-program-qtrobot" class="md-nav__link">
    2. Can I use C# to program QTrobot?
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#3-how-to-connect-bluetooth-mousekeyboard-to-qtrobot" class="md-nav__link">
    3. How to connect Bluetooth mouse/keyboard to QTrobot?
  </a>
  
    <nav class="md-nav">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#step-1-ssh-to-qtpc" class="md-nav__link">
    Step 1: ssh to QTPC
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#step-2-launch-bluetoothctl" class="md-nav__link">
    Step 2: launch bluetoothctl
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#step-3-turn-bluetooth-power-on-and-register-the-agent" class="md-nav__link">
    Step 3: turn bluetooth power on and register the agent
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#step-4-scan-and-pair-the-bluetooth-device" class="md-nav__link">
    Step 4: scan and pair the bluetooth device
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#step-5-trust-and-connect-to-the-device" class="md-nav__link">
    Step 5: trust and connect to the device:
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
        <li class="md-nav__item">
  <a href="#4-is-qtrobot-sdk-open-source" class="md-nav__link">
    4. Is QTrobot SDK open source?
  </a>
  
</li>
      
      
      
      
      
    </ul>
  
</nav>
                  </div>
                </div>
              </div>
            
          
          <div class="md-content">
            <article class="md-content__inner md-typeset">
              
                
                
                <h1 id="miscellaneous-faq"><strong>Miscellaneous - FAQ</strong></h1>
<div class="admonition question">
<p class="admonition-title">Can't find what you're looking for?</p>
<p><a style="font-weight:600; font-size:18px" href="https://github.com/luxai-qtrobot/QA/issues/new">ASK YOUR QUESTION HERE</a></p>
</div>
<hr />
<p><em>This QTrobot FAQ is a summary of the issues from <a href="https://github.com/luxai-qtrobot/QA/issues?utf8=%E2%9C%93&amp;q=is%3Aissue">our Github repo</a>.
You can always open a new issue/feature request for any interfaces and we do our best to fix/implement them.</em></p>
<h2 id="1-can-i-do-a-backup-of-qtrobot"><strong>1. Can I do a backup of QTrobot?</strong></h2>
<p>QTrobot has two computational components:</p>
<ul>
<li>RPI (Ubuntu 16.04 LTS)</li>
<li>Intel NUC PC (Ubuntu 16.04 LTS)</li>
</ul>
<p>Except Nuitrack ROS interface (qt_nuitrack_app) all other qt software are running on RPI. qt_nuitrack_app and other demo apps are all available on our github and you can recover/update it whenever you want.</p>
<p>You can backup the config files of RPI for your own recovery. All QTrobot startup scripts, gestures, emotions, etc. are located under ~/robot folder in RPI.</p>
<p>In case of emergency recovery, we can send you the SD card image. we can prepare this image somehow you can flash it to a USB stick, plug it into QTrobot (USB) to recover the image.</p>
<h2 id="2-can-i-use-c-to-program-qtrobot"><strong>2. Can I use C# to program QTrobot?</strong></h2>
<p>QTrobot APIs are based on the most popular software framework in robotic, <a href="https://www.ros.org">ROS</a> – a publish/subscribe middleware. ROS by default supports C++ and Python  but other languages are covered via different open-source and well-maintained client libraries.</p>
<p>Indeed you can use C# to program QTrobot. You can refer to <a href="https://github.com/siemens/ros-sharp">ros-sharp</a> open-source library which leverages <code class="codehilite"><span class="err">websockets</span></code> for underlying communication and cover all QTrobot APIs.  It has good integration with Unity3D too.</p>
<p>We have also developed different Android apps using <code class="codehilite"><span class="err">websockets</span></code> in  <code class="codehilite"><span class="err">Jscript</span></code> and using native <code class="codehilite"><span class="err">Java</span></code> APIs for our robot.   </p>
<h2 id="3-how-to-connect-bluetooth-mousekeyboard-to-qtrobot"><strong>3. How to connect Bluetooth mouse/keyboard to QTrobot?</strong></h2>
<p>This tutorial explain how to pair and connect a Bluetooth mouse/keyboard to QTrobot NUC pc via terminal/ssh. The same procedure works also for RPI.</p>
<p><strong>Notice</strong>: for RPI you may need to run the <code class="codehilite"><span class="err">bluetoothctl</span></code> with <code class="codehilite"><span class="err">sudo</span></code>!</p>
<h3 id="step-1-ssh-to-qtpc">Step 1: ssh to QTPC</h3>
<p>connect to the QTrobot wifi and ssh into QTPC:
<div class="codehilite"><pre><span></span><code><span class="err">$</span> <span class="n">ssh</span> <span class="n">qtrobot</span><span class="mf">@192.168.100.2</span>
</code></pre></div></p>
<h3 id="step-2-launch-bluetoothctl">Step 2: launch bluetoothctl</h3>
<div class="codehilite"><pre><span></span><code><span class="n">qtrobot</span><span class="nv">@QTPC</span><span class="err">:</span><span class="o">~</span><span class="err">$</span><span class="w"> </span><span class="n">bluetoothctl</span><span class="w"></span>
<span class="o">[</span><span class="n">NEW</span><span class="o">]</span><span class="w"> </span><span class="n">Controller</span><span class="w"> </span><span class="nl">F8</span><span class="p">:</span><span class="mi">63</span><span class="err">:</span><span class="mi">3</span><span class="nl">F</span><span class="p">:</span><span class="mi">40</span><span class="err">:</span><span class="mi">61</span><span class="err">:</span><span class="n">B2</span><span class="w"> </span><span class="n">QTPC</span><span class="w"> </span><span class="o">[</span><span class="n">default</span><span class="o">]</span><span class="w"></span>
</code></pre></div>

<h3 id="step-3-turn-bluetooth-power-on-and-register-the-agent">Step 3: turn bluetooth power on and register the agent</h3>
<div class="codehilite"><pre><span></span><code><span class="o">[</span><span class="n">bluetooth</span><span class="o">]</span><span class="err">#</span><span class="w"> </span><span class="nf">power</span><span class="w"> </span><span class="k">on</span><span class="w"></span>
<span class="n">Changing</span><span class="w"> </span><span class="nf">power</span><span class="w"> </span><span class="k">on</span><span class="w"> </span><span class="n">succeeded</span><span class="w"></span>

<span class="o">[</span><span class="n">bluetooth</span><span class="o">]</span><span class="err">#</span><span class="w"> </span><span class="n">agent</span><span class="w"> </span><span class="k">on</span><span class="w"></span>
<span class="n">Agent</span><span class="w"> </span><span class="n">registered</span><span class="w"></span>

<span class="o">[</span><span class="n">bluetooth</span><span class="o">]</span><span class="err">#</span><span class="w"> </span><span class="k">default</span><span class="o">-</span><span class="n">agent</span><span class="w"></span>
<span class="k">Default</span><span class="w"> </span><span class="n">agent</span><span class="w"> </span><span class="n">request</span><span class="w"> </span><span class="n">successful</span><span class="w"></span>
</code></pre></div>

<h3 id="step-4-scan-and-pair-the-bluetooth-device">Step 4: scan and pair the bluetooth device</h3>
<p>to scan the bluettoth devices:
<div class="codehilite"><pre><span></span><code><span class="o">[</span><span class="n">bluetooth</span><span class="o">]</span><span class="err">#</span><span class="w"> </span><span class="n">scan</span><span class="w"> </span><span class="k">on</span><span class="w"></span>
<span class="n">Discovery</span><span class="w"> </span><span class="n">started</span><span class="w"></span>
<span class="o">[</span><span class="n">CHG</span><span class="o">]</span><span class="w"> </span><span class="n">Controller</span><span class="w"> </span><span class="nl">F8</span><span class="p">:</span><span class="mi">63</span><span class="err">:</span><span class="mi">3</span><span class="nl">F</span><span class="p">:</span><span class="mi">40</span><span class="err">:</span><span class="mi">61</span><span class="err">:</span><span class="n">B2</span><span class="w"> </span><span class="nl">Discovering</span><span class="p">:</span><span class="w"> </span><span class="n">yes</span><span class="w"></span>
<span class="o">[</span><span class="n">CHG</span><span class="o">]</span><span class="w"> </span><span class="n">Device</span><span class="w"> </span><span class="mi">17</span><span class="err">:</span><span class="mi">13</span><span class="err">:</span><span class="mi">00</span><span class="err">:</span><span class="mi">00</span><span class="err">:</span><span class="mi">8</span><span class="nl">A</span><span class="p">:</span><span class="mi">04</span><span class="w"> </span><span class="nl">Name</span><span class="p">:</span><span class="w"> </span><span class="n">Bluetooth</span><span class="w"> </span><span class="mf">3.0</span><span class="w"> </span><span class="n">Keyboard</span><span class="w"></span>
<span class="p">...</span><span class="w"></span>
</code></pre></div>
in my case <code class="codehilite"><span class="err">Device 17:13:00:00:8A:04 Name: Bluetooth 3.0 Keyboard</span></code> is what I am looking for. Now to  pair the bluetooth device:
<div class="codehilite"><pre><span></span><code><span class="o">[</span><span class="n">bluetooth</span><span class="o">]</span><span class="err">#</span><span class="w"> </span><span class="n">pair</span><span class="w"> </span><span class="mi">17</span><span class="err">:</span><span class="mi">13</span><span class="err">:</span><span class="mi">00</span><span class="err">:</span><span class="mi">00</span><span class="err">:</span><span class="mi">8</span><span class="nl">A</span><span class="p">:</span><span class="mi">04</span><span class="w"></span>
<span class="n">Attempting</span><span class="w"> </span><span class="k">to</span><span class="w"> </span><span class="n">pair</span><span class="w"> </span><span class="k">with</span><span class="w"> </span><span class="mi">17</span><span class="err">:</span><span class="mi">13</span><span class="err">:</span><span class="mi">00</span><span class="err">:</span><span class="mi">00</span><span class="err">:</span><span class="mi">8</span><span class="nl">A</span><span class="p">:</span><span class="mi">04</span><span class="w"></span>
<span class="o">[</span><span class="n">CHG</span><span class="o">]</span><span class="w"> </span><span class="n">Device</span><span class="w"> </span><span class="mi">17</span><span class="err">:</span><span class="mi">13</span><span class="err">:</span><span class="mi">00</span><span class="err">:</span><span class="mi">00</span><span class="err">:</span><span class="mi">8</span><span class="nl">A</span><span class="p">:</span><span class="mi">04</span><span class="w"> </span><span class="nl">Connected</span><span class="p">:</span><span class="w"> </span><span class="n">yes</span><span class="w"></span>
<span class="o">[</span><span class="n">agent</span><span class="o">]</span><span class="w"> </span><span class="n">PIN</span><span class="w"> </span><span class="nl">code</span><span class="p">:</span><span class="w"> </span><span class="n">xxxx</span><span class="w"></span>
<span class="p">...</span><span class="w"></span>
<span class="o">[</span><span class="n">CHG</span><span class="o">]</span><span class="w"> </span><span class="n">Device</span><span class="w"> </span><span class="mi">17</span><span class="err">:</span><span class="mi">13</span><span class="err">:</span><span class="mi">00</span><span class="err">:</span><span class="mi">00</span><span class="err">:</span><span class="mi">8</span><span class="nl">A</span><span class="p">:</span><span class="mi">04</span><span class="w"> </span><span class="nl">Paired</span><span class="p">:</span><span class="w"> </span><span class="n">yes</span><span class="w"></span>
<span class="n">Pairing</span><span class="w"> </span><span class="n">successful</span><span class="w"></span>
</code></pre></div>
Some keyboards require to type a PIN code for pairing. Just type the code <strong>using your bluetooth keyboard</strong>. You do not see anything on the terminal. The code is sent directly by your keyboard while you are typing it.</p>
<h3 id="step-5-trust-and-connect-to-the-device">Step 5: trust and connect to the device:</h3>
<p>trust the device:
<div class="codehilite"><pre><span></span><code><span class="o">[</span><span class="n">bluetooth</span><span class="o">]</span><span class="err">#</span><span class="w"> </span><span class="n">trust</span><span class="w"> </span><span class="mi">17</span><span class="err">:</span><span class="mi">13</span><span class="err">:</span><span class="mi">00</span><span class="err">:</span><span class="mi">00</span><span class="err">:</span><span class="mi">8</span><span class="nl">A</span><span class="p">:</span><span class="mi">04</span><span class="w"></span>
<span class="o">[</span><span class="n">CHG</span><span class="o">]</span><span class="w"> </span><span class="n">Device</span><span class="w"> </span><span class="mi">17</span><span class="err">:</span><span class="mi">13</span><span class="err">:</span><span class="mi">00</span><span class="err">:</span><span class="mi">00</span><span class="err">:</span><span class="mi">8</span><span class="nl">A</span><span class="p">:</span><span class="mi">04</span><span class="w"> </span><span class="nl">Trusted</span><span class="p">:</span><span class="w"> </span><span class="n">yes</span><span class="w"></span>
</code></pre></div>
and finally connect to the bluettoh/keyboard mouse:
<div class="codehilite"><pre><span></span><code><span class="o">[</span><span class="n">bluetooth</span><span class="o">]</span><span class="err">#</span><span class="w"> </span><span class="k">connect</span><span class="w"> </span><span class="mi">17</span><span class="err">:</span><span class="mi">13</span><span class="err">:</span><span class="mi">00</span><span class="err">:</span><span class="mi">00</span><span class="err">:</span><span class="mi">8</span><span class="nl">A</span><span class="p">:</span><span class="mi">04</span><span class="w"></span>
<span class="n">Attempting</span><span class="w"> </span><span class="k">to</span><span class="w"> </span><span class="k">connect</span><span class="w"> </span><span class="k">to</span><span class="w"> </span><span class="mi">17</span><span class="err">:</span><span class="mi">13</span><span class="err">:</span><span class="mi">00</span><span class="err">:</span><span class="mi">00</span><span class="err">:</span><span class="mi">8</span><span class="nl">A</span><span class="p">:</span><span class="mi">04</span><span class="w"></span>
<span class="o">[</span><span class="n">CHG</span><span class="o">]</span><span class="w"> </span><span class="n">Device</span><span class="w"> </span><span class="mi">17</span><span class="err">:</span><span class="mi">13</span><span class="err">:</span><span class="mi">00</span><span class="err">:</span><span class="mi">00</span><span class="err">:</span><span class="mi">8</span><span class="nl">A</span><span class="p">:</span><span class="mi">04</span><span class="w"> </span><span class="nl">Connected</span><span class="p">:</span><span class="w"> </span><span class="n">yes</span><span class="w"></span>
<span class="k">Connection</span><span class="w"> </span><span class="n">successful</span><span class="w"></span>
</code></pre></div></p>
<h2 id="4-is-qtrobot-sdk-open-source"><strong>4. Is QTrobot SDK open source?</strong></h2>
<p>QTrobot SDK software is not licensed as ope source.  For the time being, we do not have any plan to make them open source. But these are just few software components which implement the required basic ROS interfaces such as motor control, gesture, speech, emotion. The main components  (implemented as ROS node) are:</p>
<ul>
<li><code class="codehilite"><span class="err">qt_motor</span></code> including <code class="codehilite"><span class="err">motor_controller</span></code> and <code class="codehilite"><span class="err">gesture_controller</span></code> plugins  implement robot motor joints control and robot gesture record/play functionalities.</li>
<li><code class="codehilite"><span class="err">qt_robot_interface</span></code> implements speech, audio, basic behavior and setting functionalities.</li>
</ul>
<p>You can always open a new issue/feature request for those interfaces and we do our best to fix/implement them.</p>
<p>The rest of the codes including all demo application are open source and you are more than welcome to contribute to those. :)</p>
                
                  
                
                
                  
                  <hr>
                  <div class="md-source-date">
                    <small>
                      
                        Last update: February 6, 2020
                      
                    </small>
                  </div>
                
              
              
                


              
            </article>
          </div>
        </div>
      </main>
      
        <!--
  Copyright (c) 2016-2020 Martin Donath <martin.donath@squidfunk.com>

  Permission is hereby granted, free of charge, to any person obtaining a copy
  of this software and associated documentation files (the "Software"), to
  deal in the Software without restriction, including without limitation the
  rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
  sell copies of the Software, and to permit persons to whom the Software is
  furnished to do so, subject to the following conditions:

  The above copyright notice and this permission notice shall be included in
  all copies or substantial portions of the Software.

  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
  IN THE SOFTWARE.
-->



<!-- Application footer -->
<footer id="footer" class="md-footer">

  <!-- Link to previous and/or next page -->
  
    <div class="md-footer-nav">
      <nav class="md-footer-nav__inner md-grid">

        <!-- Link to previous page -->
        
          <a href="../Network/"
              title="Network"
              class="md-flex md-footer-nav__link md-footer-nav__link--prev"
              rel="prev">
            <div class="md-flex__cell md-flex__cell--shrink">
              <i class="md-icon md-icon--arrow-back
                    md-footer-nav__button"></i>
            </div>
            <div class="md-flex__cell md-flex__cell--stretch
                  md-footer-nav__title">
              <span class="md-flex__ellipsis">
                <span class="md-footer-nav__direction">
                  Previous
                </span>
                Network
              </span>
            </div>
          </a>
        

        <!-- Link to next page -->
        
          <a href="../../demos/"
              title="Demos"
              class="md-flex md-footer-nav__link md-footer-nav__link--next"
              rel="next">
            <div class="md-flex__cell md-flex__cell--stretch
                  md-footer-nav__title">
              <span class="md-flex__ellipsis">
                <span class="md-footer-nav__direction">
                  Next
                </span>
                Demos
              </span>
            </div>
            <div class="md-flex__cell md-flex__cell--shrink">
              <i class="md-icon md-icon--arrow-forward
                    md-footer-nav__button"></i>
            </div>
          </a>
        
      </nav>
    </div>
  

  <!-- Further information -->
  <div class="md-footer-meta md-typeset">
    <div class="md-footer-meta__inner md-grid">
      <!-- Copyright and theme information -->
      <div class="md-footer-copyright">
        
          <div class="md-footer-copyright__highlight">
            &copy; Copyright &copy; 2020 LuxAI S.A.
          </div>
        
      </div>

      <!-- Social links -->
      
  <div class="md-footer-social">
    <link rel="stylesheet" href="../../assets/fonts/font-awesome.css">
    
      <a href="https://github.com/luxai-qtrobot" target="_blank" rel="noopener" title="github" class="md-footer-social__link fa fa-github"></a>
    
      <a href="https://twitter.com/qtrobot" target="_blank" rel="noopener" title="twitter" class="md-footer-social__link fa fa-twitter"></a>
    
      <a href="https://www.linkedin.com/company/luxai/" target="_blank" rel="noopener" title="linkedin" class="md-footer-social__link fa fa-linkedin"></a>
    
      <a href="https://www.facebook.com/luxAI/" target="_blank" rel="noopener" title="facebook" class="md-footer-social__link fa fa-facebook"></a>
    
      <a href="https://www.youtube.com/channel/UCAY0H0HaqQL1GE7lO_iSpbg" target="_blank" rel="noopener" title="youtube" class="md-footer-social__link fa fa-youtube"></a>
    
  </div>

    </div>
  </div>
</footer>
      
    </div>
    
      <script src="../../assets/javascripts/application.c33a9706.js"></script>
      
      <script>app.initialize({version:"1.1",url:{base:"../.."}})</script>
      
        <script src="../../javascripts/extra.js"></script>
      
    
  </body>
</html>